package com.transaction.common.util;

import org.apache.commons.collections4.map.HashedMap;

import java.io.File;
import java.util.Map;

public class ConstUtil {

    //百家姓
    public static final String FAMILY_NAMES =
            "赵,钱,孙,李,周,吴,郑,王,冯,陈,褚,卫,蒋,沈,韩,杨,朱,秦,尤,许,何,吕,施,张," +
            "孔,曹,严,华,金,魏,陶,姜,戚,谢,邹,喻,柏,水,窦,章,云,苏,潘,葛,奚,范,彭,郎," +
            "鲁,韦,昌,马,苗,凤,花,方,俞,任,袁,柳,酆,鲍,史,唐,费,廉,岑,薛,雷,贺,倪,汤," +
            "滕,殷,罗,毕,郝,邬,安,常,乐,于,时,傅,皮,卞,齐,康,伍,余,元,卜,顾,孟,平,黄," +
            "和,穆,萧,尹,姚,邵,湛,汪,祁,毛,禹,狄,米,贝,明,臧,计,伏,成,戴,谈,宋,茅,庞," +
            "熊,纪,舒,屈,项,祝,董,梁,杜,阮,蓝,闵,席,季,麻,强,贾,路,娄,危,江,童,颜,郭," +
            "梅,盛,林,刁,钟,徐,邱,骆,高,夏,蔡,田,樊,胡,凌,霍,虞,万,支,柯,昝,管,卢,莫," +
            "经,房,裘,缪,干,解,应,宗,丁,宣,贲,邓,郁,单,杭,洪,包,诸,左,石,崔,吉,钮,龚," +
            "程,嵇,邢,滑,裴,陆,荣,翁,荀,羊,於,惠,甄,麴,家,封,芮,羿,储,靳,汲,邴,糜,松," +
            "井,段,富,巫,乌,焦,巴,弓,牧,隗,山,谷,车,侯,宓,蓬,全,郗,班,仰,秋,仲,伊,宫," +
            "宁,仇,栾,暴,甘,钭,厉,戎,祖,武,符,刘,景,詹,束,龙,叶,幸,司,韶,郜,黎,蓟,薄," +
            "印,宿,白,怀,蒲,邰,从,鄂,索,咸,籍,赖,卓,蔺,屠,蒙,池,乔,阴,郁,胥,能,苍,双," +
            "闻,莘,党,翟,谭,贡,劳,逄,姬,申,扶,堵,冉,宰,郦,雍,郗,璩,桑,桂,濮,牛,寿,通," +
            "边,扈,燕,冀,郏,浦,尚,农,温,别,庄,晏,柴,瞿,阎,充,慕,连,茹,习,宦,艾,鱼,容," +
            "向,古,易,慎,戈,廖,庾,终,暨,居,衡,步,都,耿,满,弘,匡,国,文,寇,广,禄,阙,东," +
            "欧,殳,沃,利,蔚,越,夔,隆,师,巩,库,聂,晁,勾,敖,融,冷,訾,辛,阚,那,简,饶,空," +
            "曾,母,沙,乜,养,鞠,须,丰,巢,关,蒯,相,查,后,荆,红,游,竺,权,逯,盖,益,桓,公," +
            "万俟,司马,上官,欧阳,夏侯,诸葛,闻人,东方," +
            "赫连,皇甫,尉迟,公羊,澹台,公冶,宗政,濮阳," +
            "淳于,单于,太叔,申屠,公孙,仲孙,轩辕,令狐," +
            "钟离,宇文,长孙,慕容,鲜于,闾丘,司徒,司空";

    //中国移动
    public static final String[] CHINA_MOBILE = {
            "134", "135", "136", "137", "138", "139", "150", "151", "152", "157", "158", "159",
            "182", "183", "184", "187", "188", "178", "147", "172", "198"
    };
    //中国联通
    public static final String[] CHINA_UNICOM = {
            "130", "131", "132", "145", "155", "156", "166", "171", "175", "176", "185", "186", "166"
    };
    //中国电信
    public static final String[] CHINA_TELECOME = {
            "133", "149", "153", "173", "177", "180", "181", "189", "199"
    };

    //公司名后缀
    public static final String[] COMPANY_SUFFIX = {
            "文化", "传媒", "有限公司", "科技公司", "股份公司", "实业"
    };

    //文件第一行
    public static final String FILE_FIRST_LINE = "OFDCFDAT";
    //索引文件第一行
    public static final String INDEX_FILE_FIRST_LINE = "OFDCFIDX";
    //文件结束标识
    public static final String FILE_LAST_LINE = "OFDCFEND";
    //文件前缀
    public static final String FILE_PREFIX = "OFD_";
    //索引文件前缀
    public static final String INDEX_FILE_PREFIX = "OFI_";
    //电子合同索引文件前缀
    public static final String EL_INDEX_FILE_PREFIX = "OFG_";
    //反洗钱索引文件前缀
    public static final String FXQ_INDEX_FILE_PREFIX = "OFX_";
    //行情索引文件前缀
    public static final String HQ_INDEX_FILE_PREFIX = "OFJ_";
    //文件后缀
    public static final String FILE_SUFFIX = ".TXT";
    //下划线
    public static final String UNDER_LINE = "_";
    //汇总表号
    public static final String FILE_999 = "999";
    //换行
    public static final String LINE_FEED = "\r\n";
    //字段类型
    public static final String COLE_TYPE_A = "A";
    public static final String COLE_TYPE_C = "C";
    public static final String COLE_TYPE_N = "N";
    //文件编码
    public static final String FILE_ENCODING = "GB18030";

    //系统编码
    public static final String TRANSACTION_SIMULATE = "transaction" + File.separator + "simulate";
    public static final String TRANSACTION_MANAGE = "transaction"+ File.separator +"manage";
    //发送
    public static final String FILE_SEND = "send";
    //接收
    public static final String FILE_RECEIVE = "receive";
    //压缩文件后缀
    public static final String COMPRESS_FILE_SUFFIX = ".zip";
    //业务类型
    public static final String OPEN_ACCOUNT = "001";
    public static final String UPDATE_ACCOUNT = "003";
    public static final String CLOSE_ACCOUNT = "002";
    public static final String CANCEL_ACCOUNT = "009";
    public static final String OPEN_ACCOUNT_CONFIRM = "101";
    public static final String UPDATE_ACCOUNT_CONFIRM = "103";

    public static final String RG_TRANS = "020";
    public static final String SG_TRANS = "022";
    public static final String SH_TRANS = "024";

    public static final String TRANS_APPLICATION_CONFIRM = "120,122,124";

    public static final String ACCOUNT_SUPPORT_BUSINESS = "001,002,003,009";
    public static final String TRANS_SUPPORT_BUSINESS = "020,022,024";



    //文件类型
    public static final String FILE_TYPE_01 = "01";
    public static final String FILE_TYPE_03 = "03";
    public static final String FILE_TYPE_31 = "31";
    public static final String FILE_TYPE_43 = "43";
    public static final String FILE_TYPE_R1 = "R1";
    public static final String FILE_TYPE_X1 = "X1";
    public static final String FILE_TYPE_X3 = "X3";

    public static final String FILE_TYPE_07 = "07";
    public static final String FILE_TYPE_02 = "02";
    public static final String FILE_TYPE_04 = "04";
    public static final String FILE_TYPE_05 = "05";
    public static final String FILE_TYPE_06 = "06";
    public static final String FILE_TYPE_44 = "44";
    public static final String FILE_TYPE_32 = "32";
    public static final String FILE_TYPE_R2 = "R2";
    public static final String FILE_TYPE_X2 = "X2";
    public static final String FILE_TYPE_X4 = "X4";

    public static final String SEND_FILE_TYPE = "01,03,31,43,R1,X1,X3";
    public static final String RECEIVE_FILE_TYPE = "07,02,04,05,06,44,32,R2,X2,X4";

    public static final String VERSION_21 = "21";
    public static final String VERSION_22 = "22";

    /**
     * 文件解析默认接口使用
     */
    public static final Map<String,String> fileAnalysisInterface = new HashedMap<String,String>(){
        {
            put(FILE_TYPE_01 + VERSION_21,"0100121");
            put(FILE_TYPE_03 + VERSION_21,"0302021");
            put(FILE_TYPE_31 + VERSION_21,"3100021");
            put(FILE_TYPE_43 + VERSION_21,"4300021");
            put(FILE_TYPE_R1 + VERSION_21,"R100021");

            put(FILE_TYPE_01 + VERSION_22,"0100122");
            put(FILE_TYPE_03 + VERSION_22,"0302022");
            put(FILE_TYPE_31 + VERSION_22,"3100022");
            put(FILE_TYPE_43 + VERSION_22,"4300022");
            put(FILE_TYPE_R1 + VERSION_22,"R100022");

        }
    };


}
